HAL LTDC control functions

In HAL1, the HAL_LTDC_PPP() functions include an integrated immediate force reload mechanism, whereas the HAL_LTDC_PPP_NoReload() functions do not. Therefore, the latter requires an explicit call to HAL_LTDC_Reload() to apply any configuration changes. This approach allows the user to synchronize updates and avoid glitches on the screen.

In HAL2, the HAL_LTDC_PPP() functions no longer perform any automatic force reload and a call to HAL_LTDC_ForceReload() is required to apply the updates. Consequently, all HAL_LTDC_PPP_NoReload() functions have been removed.

HAL LTDC specific layer configuration

HAL1

HAL2

HAL_LTDC_ConfigLayer(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg,
                     uint32_t LayerIdx);
HAL_LTDC_SetConfigLayer(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                            const hal_ltdc_layer_config_t *p_layer_config);

HAL_LTDC_ForceReload(const hal_ltdc_handle_t *hltdc, hal_ltdc_reload_type_t reload_type);

Related use case:


HAL LTDC layer configuration without reload.

HAL1

HAL2

HAL_LTDC_ConfigLayer_NoReload(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg,
                                       uint32_t LayerIdx);
Removed; use HAL_LTDC_SetConfigLayer(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                            const hal_ltdc_layer_config_t *p_layer_config) instead.

HAL LTDC set window size

HAL1

HAL2

HAL_LTDC_SetWindowSize(LTDC_HandleTypeDef *hltdc, uint32_t XSize, uint32_t YSize,
                       uint32_t LayerIdx);
HAL_LTDC_SetLayerWindowSize(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                                uint32_t x_size, uint32_t y_size);

HAL_LTDC_ForceReload(const hal_ltdc_handle_t *hltdc, hal_ltdc_reload_type_t reload_type);

HAL LTDC set window size without reload.

HAL1

HAL2

HAL_LTDC_SetWindowSize_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t XSize, uint32_t YSize,
                                         uint32_t LayerIdx);
Removed; use HAL_LTDC_SetLayerWindowSize(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                                uint32_t x_size, uint32_t y_size) instead.

HAL LTDC set window position

HAL1

HAL2

HAL_LTDC_SetWindowPosition(LTDC_HandleTypeDef *hltdc, uint32_t X0, uint32_t Y0,
                           uint32_t LayerIdx);
HAL_LTDC_SetLayerWindowPosition(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                                    uint32_t x0, uint32_t y0);

HAL_LTDC_ForceReload(const hal_ltdc_handle_t *hltdc, hal_ltdc_reload_type_t reload_type);

HAL LTDC set window position without reload.

HAL1

HAL2

HAL_LTDC_SetWindowPosition_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t X0, uint32_t Y0,
                                             uint32_t LayerIdx);
Removed; use HAL_LTDC_SetLayerWindowPosition(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                                    uint32_t x0, uint32_t y0) instead.

HAL LTDC set pixel format

HAL1

HAL2

HAL_LTDC_SetPixelFormat(LTDC_HandleTypeDef *hltdc, uint32_t Pixelformat, uint32_t LayerIdx);
Removed; use HAL_LTDC_SetLayerFrameBuffer(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                        const hal_ltdc_frame_buffer_t *p_frame_buffer) followed by
             HAL_LTDC_ForceReload(const hal_ltdc_handle_t *hltdc, hal_ltdc_reload_type_t reload_type) instead.

Usage example :

HAL1

HAL2








HAL_LTDC_SetPixelFormat(&hltdc, LTDC_PIXEL_FORMAT_ARGB4444, 1);
hal_ltdc_frame_buffer_t frame_buffer_cfg;

frame_buffer_cfg.pixel_format = HAL_LTDC_PIXEL_FORMAT_ARGB4444;
frame_buffer_cfg.address      = 0x00;
frame_buffer_cfg.width        = 240;
frame_buffer_cfg.height       = 320;

HAL_LTDC_SetLayerFrameBuffer(&LTDC_Handle, HAL_LTDC_LAYER_1, &frame_buffer_cfg);
HAL_LTDC_ForceReload(&LTDC_Handle, HAL_LTDC_RELOAD_IMMEDIATE);

HAL LTDC set pixel format without reload.

HAL1

HAL2

HAL_LTDC_SetPixelFormat_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t Pixelformat,
                                 uint32_t LayerIdx);
Removed; use HAL_LTDC_SetLayerFrameBuffer(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                                 const hal_ltdc_frame_buffer_t *p_frame_buffer) instead.

HAL LTDC set alpha value

HAL1

HAL2

HAL_LTDC_SetAlpha(LTDC_HandleTypeDef *hltdc, uint32_t Alpha, uint32_t LayerIdx);
HAL_LTDC_SetLayerAlpha(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer, uint8_t alpha);

HAL_LTDC_ForceReload(const hal_ltdc_handle_t *hltdc, hal_ltdc_reload_type_t reload_type);

HAL LTDC set alpha without reload.

HAL1

HAL2

HAL_LTDC_SetAlpha_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t Alpha, uint32_t LayerIdx);
Removed; use HAL_LTDC_SetLayerAlpha(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                                    uint8_t alpha) instead.

HAL LTDC set frame buffer address.

HAL1

HAL2

HAL_LTDC_SetAddress(LTDC_HandleTypeDef *hltdc, uint32_t Address, uint32_t LayerIdx);
HAL_LTDC_SetLayerAddress(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer, uint32_t address);

HAL_LTDC_ForceReload(const hal_ltdc_handle_t *hltdc, hal_ltdc_reload_type_t reload_type);

HAL LTDC set frame buffer address without reload.

HAL1

HAL2

HAL_LTDC_SetAddress_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t Address, uint32_t LayerIdx);
Removed; use HAL_LTDC_SetLayerAddress(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                                      uint32_t address) instead.

HAL LTDC set pitch (line length)

HAL1

HAL2

HAL_LTDC_SetPitch(LTDC_HandleTypeDef *hltdc, uint32_t LinePitchInPixels, uint32_t LayerIdx);
HAL_LTDC_SetLayerPitch(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer, uint32_t pitch_byte);

HAL_LTDC_ForceReload(const hal_ltdc_handle_t *hltdc, hal_ltdc_reload_type_t reload_type);

HAL LTDC set pitch without reload.

HAL1

HAL2

HAL_LTDC_SetPitch_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LinePitchInPixels,
                           uint32_t LayerIdx);
Removed; use HAL_LTDC_SetLayerPitch(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                                    uint32_t pitch_byte) instead.

HAL LTDC color keying configuration

HAL1

HAL2

HAL_LTDC_ConfigColorKeying(LTDC_HandleTypeDef *hltdc, uint32_t RGBValue, uint32_t LayerIdx);
HAL_LTDC_SetConfigLayerColorKeying(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                                       uint32_t rgb888_color);

HAL_LTDC_ForceReload(const hal_ltdc_handle_t *hltdc, hal_ltdc_reload_type_t reload_type);

HAL LTDC color keying configuration without reload.

HAL1

HAL2

HAL_LTDC_ConfigColorKeying_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t RGBValue,
                                    uint32_t LayerIdx);
Removed; use HAL_LTDC_SetConfigLayerColorKeying(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                                       uint32_t rgb888_color) instead.

HAL LTDC Color Look-Up Table configuration

HAL1

HAL2

HAL_LTDC_ConfigCLUT(LTDC_HandleTypeDef *hltdc, const uint32_t *pCLUT, uint32_t CLUTSize,
                             uint32_t LayerIdx);
HAL_LTDC_SetConfigLayerCLUT(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer,
                            const uint32_t *p_clut, uint32_t clut_size_pixel);

HAL LTDC CLUT enable

HAL1

HAL2

HAL_LTDC_EnableCLUT(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
HAL_LTDC_EnableLayerCLUT(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer);

HAL_LTDC_ForceReload(const hal_ltdc_handle_t *hltdc, hal_ltdc_reload_type_t reload_type);

HAL LTDC CLUT enable without reload.

HAL1

HAL2

HAL_LTDC_EnableCLUT_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
Removed; use HAL_LTDC_EnableLayerCLUT(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer) instead.

HAL LTDC CLUT disables

HAL1

HAL2

HAL_LTDC_DisableCLUT(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
HAL_LTDC_DisableLayerCLUT(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer);

HAL_LTDC_ForceReload(const hal_ltdc_handle_t *hltdc, hal_ltdc_reload_type_t reload_type);

HAL LTDC CLUT disable without reload.

HAL1

HAL2

HAL_LTDC_DisableCLUT_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
Removed; use HAL_LTDC_DisableLayerCLUT(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer) instead.

HAL LTDC color keying enable

HAL1

HAL2

HAL_LTDC_EnableColorKeying(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
HAL_LTDC_EnableLayerColorKeying(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer);

HAL_LTDC_ForceReload(const hal_ltdc_handle_t *hltdc, hal_ltdc_reload_type_t reload_type);

HAL LTDC color keying enable without reload.

HAL1

HAL2

HAL_LTDC_EnableColorKeying_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
Removed; use HAL_LTDC_EnableLayerColorKeying(hal_ltdc_handle_t *hltdc,
                                             hal_ltdc_layer_t layer) instead.

HAL LTDC color keying disable

HAL1

HAL2

HAL_LTDC_DisableColorKeying(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
HAL_LTDC_DisableLayerColorKeying(hal_ltdc_handle_t *hltdc, hal_ltdc_layer_t layer);

HAL_LTDC_ForceReload(const hal_ltdc_handle_t *hltdc, hal_ltdc_reload_type_t reload_type);

HAL LTDC color keying disable without reload.

HAL1

HAL2

HAL_LTDC_DisableColorKeying_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
Removed; use HAL_LTDC_DisableLayerColorKeying(hal_ltdc_handle_t *hltdc,
                                              hal_ltdc_layer_t layer) instead.

HAL LTDC line event detection

HAL1

HAL2

HAL_LTDC_ProgramLineEvent(LTDC_HandleTypeDef *hltdc, uint32_t Line);
HAL_LTDC_EnableLineDetection(const hal_ltdc_handle_t *hltdc, uint32_t line);

HAL LTDC enables dithering.

HAL1

HAL2

HAL_LTDC_EnableDither(LTDC_HandleTypeDef *hltdc);
HAL_LTDC_EnableDither(const hal_ltdc_handle_t *hltdc);

HAL LTDC disable dithering.

HAL1

HAL2

HAL_LTDC_DisableDither(LTDC_HandleTypeDef *hltdc);
HAL_LTDC_DisableDither(const hal_ltdc_handle_t *hltdc);

HAL LTDC reload

HAL1

HAL2

HAL_LTDC_Reload(LTDC_HandleTypeDef *hltdc, uint32_t ReloadType);
HAL_LTDC_ForceReload(const hal_ltdc_handle_t *hltdc, hal_ltdc_reload_type_t reload_type);

HAL LTDC adapted command configuration initialization

HAL1

HAL2

HAL_LTDCEx_StructInitFromAdaptedCommandConfig(LTDC_HandleTypeDef *hltdc,
                                              DSI_CmdCfgTypeDef *CmdCfg)
Removed; it will be addressed in the DSI driver.

Related concept:


HAL LTDC video configuration initialization

HAL1

HAL2

HAL_LTDCEx_StructInitFromVideoConfig(LTDC_HandleTypeDef *hltdc, DSI_VidCfgTypeDef *VidCfg)
Removed; it will be addressed in the DSI driver.

Related concept: